package com.taijihuabao.modules.mapper;

import com.taijihuabao.modules.entity.ApprovalEntity;
import com.taijihuabao.modules.model.approval.vo.ApprovalVO;

import java.util.List;

/**
 * 审批
 *
 * @author luoxianan
 */


public interface ApprovalMapper {
    /**
     * 修改审批
     *
     * @param approvalEntity
     */
    void updateApproval(ApprovalEntity approvalEntity);

    /**
     * 修改审批状态
     *
     * @param id
     */
    void updateApprovalIng(Long id);

    /**
     * 修改审批状态
     *
     * @param id
     */
    void updateApprovalRefuse(Long id);

    /**
     * 修改审批状态
     *
     * @param id
     */
    void updateApprovalReturn(Long id);

    /**
     * 修改审批状态
     *
     * @param id
     */
    void updateApprovalPass(Long id);

    /**
     * 新增审批
     *
     * @param approvalEntity
     */
    void insertApproval(ApprovalEntity approvalEntity);

    /**
     * 删除审批
     *
     * @param approvalEntity
     */
    void deleteApproval(ApprovalEntity approvalEntity);

    /**
     * 根据审批编码查询
     *
     * @param approvalCode
     * @return
     */
    ApprovalVO selectByApprovalCode(String approvalCode);

    /**
     * 根据审批编码查询
     *
     * @param approvalCode
     * @return
     */
    ApprovalEntity selectOne(String approvalCode);

    /**
     * 查询申请人的所有审批单
     *
     * @param applyUserId
     * @return
     */
    List<ApprovalVO> selectByApplyUserId(Long applyUserId);

    /**
     * 根据id查询
     *
     * @param id
     * @return
     */
    ApprovalEntity selectById(Long id);

    /**
     * 根据id修改审批任务
     *
     * @param approvalEntity
     * @return
     */
    void updateApprovalTask(ApprovalEntity approvalEntity);

    /**
     * 根据id修改审批任务
     *
     * @param approvalEntity
     * @return
     */
    void updateApprovalUserId(ApprovalEntity approvalEntity);

}
